package 左哥算法.ch05链表;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class 一些链表题 {
    /**
     * 重拍链表
     */
    @Test
    public void cha01(){
        ListNode head = new ListNode(1);
        head.add(2).add(3).add(4).add(5);
        reorderList(head);
        while (head != null) {
            System.out.println(head.val);
            head=head.next;
        }
    }

    public void reorderList(ListNode head) {
        List<ListNode> list=new ArrayList<>();
        while (head != null) {
            list.add(head);
            head=head.next;
        }
        int l=0,r=list.size()-1;
        boolean flag=true;
        while(l<=r){
            if (flag){
                ListNode left = list.get(l);
                left.next= list.get(r);
                l++;
            }else {
                ListNode right = list.get(r);
                right.next= list.get(l);
                r--;
            }
            flag=!flag;
        }
        list.get((list.size())/2).next=null;
    }
}
